package com.tech.service;

import com.tech.repository.dto.GoodsInfo;
import com.tech.repository.entity.Goods;
import com.tech.repository.entity.GoodsImage;

import java.util.List;

public interface GoodsService {
	/**
	 * 获取首页推荐商品，每个商品最多一个图片
	 *
	 * @param beginIndex 开始的商品，即从第 beginIndex 开始查找
	 * @param count      获取的商品个数，如果不够的话就小于 DEFAULT_COUNT 个商品
	 * @return 分页、人气排序后的商品列表
	 */
	List<GoodsInfo> getRecommendGoods(int beginIndex, int count);

	/**
	 * 根据条件查询商品
	 *
	 * @param beginIndex 开始的商品，即从第 beginIndex 开始查找
	 * @param count      获取的商品个数
	 * @param imageCount 每个商品的图片数量，-1表示该商品所有图片
	 * @param order      排序的描述符
	 * @return 商品信息
	 */
	List<GoodsInfo> getGoodsList(int beginIndex, int count, int imageCount, String order);

	/**
	 * 根据关键字搜索商品
	 *
	 * @param keyword 商品标题
	 */
	List<Goods> getByKeyword(String keyword);

	/**
	 * 添加新的商品信息
	 *
	 * @param goods 新的商品信息
	 * @return 新商品所属ID
	 */
	int addGoods(Goods goods);

	boolean delGoods(Integer gid);

	boolean updateGoods(Goods editedGoods);
}
